import axios from 'axios'
import Element from 'element-ui'
import store from './store'
import router from './router'

/*
* 全局配置异常页面，提示信息
*
* */

axios.defaults.baseURL = "http://localhost:8081";

// 前置拦截
axios.interceptors.request.use(config => {
    console.log("前置拦截");
    return config;
});

// 后置拦截
axios.interceptors.response.use(response => {
        let res = response.data;
        console.log("后置拦截==========");
        console.log(res);
        console.log("后置拦截==========");

        // 成功
        if (res.code === 200)
            return response;

        // 失败，状态码非两百
        else
            // 过期时间 duration，弹窗自动消失
            Element.Message.error('错了哦，这是一条错误消息', {duration: 3 * 1000});

        // 请求结束，返回信息，这样就不会进入到login的逻辑中
        return Promise.reject(response.data.msg)

    },
    // 错误时，除了状态码非200，区别400 401等异常
    error => {

        if (error.response.data) {
            error.message = error.response.data.msg;
        }

        if (error.response.status === 401) {
            // 全局参数清空
            store.commit("REMOVE_INFO");

            // 跳转到登录页面
            router.push("/login");
        }

        Element.Message.error(error.message, {duration: 3 * 1000});

        // 跳转
        return Promise.reject(error)
    }
);
